namespace File_read;

public class 文件读取
{


    static IEnumerable<string> ReadFrom(string file)
    {
        string? line;
        // 此方法中的 using 语句用于管理资源清除。 
        // using 语句中初始化的变量（在此示例中，为 reader）必须实现 IDisposable 接口。
        // 编译器生成的代码可确保资源得到释放，即使代码块中用 using 语句定义的代码抛出异常。
        //  该接口定义一个方法（Dispose），应在释放资源时调用此方法。 
        // 当快执行到 using 语句的右大括号时，编译器会生成此调用。 

        // 读取一个存在的 UTF-8 编码的文本文件
        using (var reader = File.OpenText(file))
        {
            // 若此行有内容
            while ((line = reader.ReadLine()) != null)
            {
                // 返回此行数据的字符串
                // yield return line;

                var words = line.Split(' ');
                foreach (var word in words)
                {
                    yield return word + " ";
                }
                yield return Environment.NewLine;
            }
        }
    }

    public static void test()
    {
        var lines = ReadFrom("test.txt");
        foreach (var line in lines)
        {
            Console.Write(line);

            // 闻名知意 字符串非空非换行校验
            if (!string.IsNullOrWhiteSpace(line))
            {
                var pause = Task.Delay(200);
                // Synchronously waiting on a task is an
                // anti-pattern. This will get fixed in later
                // steps.
                pause.Wait();
            }
        }

    }

}
